Skip to content

Version2.2#2

Merged
Pnwcomputers merged 26 commits intomainfrom
Version2.2
Oct 31, 2025
Merged

Version2.2#2
Pnwcomputers merged 26 commits intomainfrom
Version2.2

Conversation

@Pnwcomputers
Copy link
Copy Markdown
Owner

Merge v2.2 as main branch

New Features Added
1. Tool Integrity Verification Function
Added Test-ToolIntegrity() function that:

Checks 8 key tools for minimum expected file sizes
Detects suspiciously small files (corrupted downloads)
Validates .exe extension
Has optional digital signature verification (commented out for speed)
Provides launcher-aware recommendations for re-download
Asks user permission to continue if issues found

2. Integrated into Initialize-Environment
The function now:

Checks for folder existence
Counts available tools
Runs integrity verification (new!)
Only proceeds if all checks pass

3. Launcher Awareness Working

Detects $env:SYSTESTER_LAUNCHER variable
Provides contextual messages based on how script was launched
Guides users to Option 6 when appropriate
New Features Added
1. Tool Integrity Verification Function
Added Test-ToolIntegrity() function that:

Checks 8 key tools for minimum expected file sizes
Detects suspiciously small files (corrupted downloads)
Validates .exe extension
Has optional digital signature verification (commented out for speed)
Provides launcher-aware recommendations for re-download
Asks user permission to continue if issues found

2. Integrated into Initialize-Environment
The function now:

Checks for folder existence
Counts available tools
Runs integrity verification (new!)
Only proceeds if all checks pass

3. Launcher Awareness Working

Detects $env:SYSTESTER_LAUNCHER variable
Provides contextual messages based on how script was launched
Guides users to Option 6 when appropriate
Set SYSTESTER_LAUNCHER=2.0 before launching PowerShell
Clear the variable after execution
Apply to both INTERACTIVE and AUTORUN sections
v2.1 update with some bug and code fixes
All Critical Fixes Present:

✅ Fast path length calculation via PowerShell (line 96)
✅ Signature verification with blocking on failure (lines 541-546, exit code 2)
✅ ZIP cleanup on all error paths (lines 486, 507, 543, 547)
✅ Helper functions :SAFE_TIMEOUT and :SAFE_PAUSE (lines 833-855)

All Medium Priority Fixes:

✅ Constants defined at top (lines 12-14)
✅ Reduced download timeout to 120 seconds (line 13)
✅ Tool counting after extraction (lines 572-593)
✅ Signature prompts require user confirmation (line 541)

All Minor Improvements:

✅ Version in title and menu (lines 71, 154)
✅ Helper functions called consistently throughout
✅ Updated help text with v2.2 features (lines 720-726)
✅ Better error messages with specific guidance
1. Launcher Awareness and Better Messaging
Your PowerShell script (SystemTester.ps1) includes both Test-Launcher and the Initialize-Environment function, which works together to provide better diagnostics and guidance.

Launcher Awareness: The Test-Launcher function sets the global variable $script:LaunchedViaBatch when the script detects it was called by cmd.exe. This flag is used in the final report generation for better logging.

Better Integration Messages: The Initialize-Environment function immediately checks for the /Sysinternals folder. If tools are missing, it prints a clear message directing the user to Menu Option 6 for auto-download, preventing user confusion.

2. Tool Integrity Verification (Option 5)
This functionality is handled by the Test-ToolIntegrity and Test-ToolVerification functions in the PowerShell script.

Integrity Check: The Test-ToolIntegrity function performs file size checks and uses Get-AuthenticodeSignature to verify that key executables (like psinfo.exe or sigcheck.exe) are genuinely signed by Microsoft.

Execution: When you select Option 5 in the Batch file, it runs the following command, which loads the functions and executes the check cleanly:

Bash

powershell -NoProfile -ExecutionPolicy Bypass -Command "$script:ExternalCall = $true; . '%SCRIPT_PS1%' ; Test-ToolVerification ; Write-Host 'Verification complete...'; $null=Read-Host"
3. Auto-Download Feature (Option 6)
The stability fix you just confirmed directly involves the auto-download feature, which is contained entirely within the PowerShell script.

Download Logic: The Download-SysinternalsSuite function uses Invoke-WebRequest and ZipFile::ExtractToDirectory to automatically download the official Sysinternals suite, extract it to the correct folder, and clean up the temporary ZIP file.

Stable Execution: The Batch file now executes this function reliably using the dot-sourcing method, bypassing the crash-prone execution paths:
version 2.1 update
Updated version to 2.3, added network speed testing features, and improved help documentation.
Added new features for network speed testing, including connectivity tests, latency testing, and DNS resolution speed testing. Enhanced reporting to include network speed test results.
Updated README to reflect new features and improvements in version 2.2, including enhanced network testing capabilities and report generation.
Updated version number and parameters for system testing. Enhanced tool output cleaning and added network speed testing functionality.
Added detailed statistics and summary output for tool verification results.
@Pnwcomputers Pnwcomputers self-assigned this Oct 25, 2025
@Pnwcomputers Pnwcomputers added the enhancement New feature or request label Oct 31, 2025
@Pnwcomputers Pnwcomputers merged commit d0a9054 into main Oct 31, 2025
4 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant